草庐IT

c++ - future 与 promise

全部标签

Javascript:Promises + this

这个问题在这里已经有了答案:Howdoesthe"this"keywordwork,andwhenshoulditbeused?(22个答案)关闭6年前。考虑以下代码:foo:function(){varself=this;varp1=p2=someFunctionThatReturnsAPromise();Promise.all([p1,p2]).then(self.bar);}bar:function(promises){varself=this;console.log(self);}输出:undefined但如果我改为执行以下操作:foo:function(){varself=t

javascript - promise 解决后如何从 Promise 对象中获取值

请注意这是一个人为的例子。functionlongFunc(){vardeferred=$.Deferred();setTimeout(function(){console.log("longfunccompleted");deferred.resolve("hello");},3000);returndeferred.promise();}functionshortAfterLongFunc(x){console.log('shortfunccompletedwithvalue:'+x);return{a:x};}processFurther(longFunc().then(shor

javascript - Angular - 绑定(bind)到返回 promise 的函数

我是Angular的新手,我很难弄清楚这个问题的根源。我正在编写一个单页应用程序,并且正在处理身份验证部分。我有一个名为“sessionService”的服务,我希望能够在整个应用程序中使用它来确定用户是否登录。如果我这样做很简单:...service('sessionService',function(...){/*...snip...*/this.isLoggedIn=function(){returnthis.authenticated;};});其中“已验证”仅供服务私有(private)。但是,如果我刷新页面,就会分崩离析。所以,我的想法是做这样的事情:/*...snip..

javascript - 如何使用 Jasmine 在 AngularJS 中测试 .catch Promise 返回?

我是Javascript的新手,刚开始学习AngularJS,但我的大部分测试用例都与我发现的一些很好的示例一起使用。不幸的是,我似乎找不到任何可以帮助我测试当前案例的东西。我正在使用一个模拟服务测试一个Controller,该服务的方法返回一个promise。我希望模拟服务返回一个错误,以便在Controller方法中执行“.catch”block。我可以通过几种方式判断它没有被正确调用:我正在使用istanbul用于代码覆盖,它告诉我我没有覆盖“catch”'.catch'block中的代码没有被执行,据我通过调试得知被测Controller,具体需要测试$scope.login中

javascript - 使用生成器 + promise 在 Firefox SDK 附加组件中/与 Firefox SDK 附加组件进行 "simulated synchronous"通信

TL;DR:有什么方法可以重写这个基于回调的JavaScript代码以改用promises和生成器吗?背景我有一个使用FirefoxAdd-onSDK编写的Firefox扩展.与SDK一样,代码分为附加脚本和contentscript。.这两个脚本具有不同类型的权限:附加脚本可以做一些奇特的事情,例如,通过js-ctypes调用native代码。界面,而内容脚本可以与网页交互。然而,附加脚本和内容脚本只能通过异步message-passinginterface来彼此交互。.我希望能够从普通的非特权网页上的用户脚本调用扩展代码。这可以使用称为exportFunction的机制来完成这样一

javascript - 为什么在 Chrome 上忽略被拒绝的 promise 是错误的?

如果promise被拒绝,我不想做任何事情,比如getPromise().then(foo=>{});。为什么在Chrome上会出错?(newPromise((resolve,reject)=>{reject()}))Promise{[[PromiseStatus]]:"rejected",[[PromiseValue]]:undefined}VM3250:2Uncaught(inpromise)undefined在Node和Firefox上,可以忽略被拒绝的部分。 最佳答案 promise拒绝就像未捕获的异常。如果你想忽略异常-捕

javascript - JS Promise - 立即从返回 Promise 的函数中检索一些数据

谁能推荐一种模式来立即从返回Promise的函数中检索数据?我的(简化的)示例是一个AJAX预加载器:loadPage("index.html").then(displayPage);如果这是下载一个大页面,我希望能够检查发生了什么,并可能在稍后阶段使用XHRabort()取消该过程。我的loadPage函数过去常常(在Promises之前)返回一个id,让我稍后执行此操作:varloadPageId=loadPage("index.html",displayPage);...doSomething(loadPageId);cancelLoadPage(loadPageId);在我基于

javascript - Angular : Pass additional parameters to chained promises

我想链接一些由服务返回的promise。只要某些返回promise的方法不需要额外的参数,这就可以工作。这是我的例子:varfirst=function(){vard=$q.defer();$timeout(function(){d.resolve("firstresolved")},100)returnd.promise;};varsecond=function(val){console.log("valueofval:",val);vard=$q.defer();$timeout(function(){d.resolve("secondresolved")},200)returnd

javascript - JavaScript 永远悬而未决的 promise 不好吗?

假设我有一个名为myProm的promise,并假设我有名为onSuccess和onError的成功和错误处理程序。每当我的promise完成时间超过10秒时,我希望执行一个名为timeoutHandler的函数,但如果发生这种情况,onSuccess和onError都不会执行应该被执行。(同样,如果onSuccess或onError运行,我不希望我的timeoutHandler被执行。)我为此想出了以下片段。newPromise((suc,err)=>{letoutOfTime=false;consttimeoutId=window.setTimeout(()=>{outOfTime

javascript - 如何使用 js-ctypes Firefox 扩展调用 native C 代码?

我正在尝试构建一个需要调用nativeC代码的Firefox扩展。我的C程序代码是:#includeintadd(inta,intb){return(a+b);}我的JavaScript代码是:var{Cu}=require('chrome');varself=require('sdk/self');Cu.import("resource://gre/modules/ctypes.jsm");varlib;varputs;lib=ctypes.open('G:\\Shankar\\Project\\Maidsafe\\Firefox\\addon-sdk-1.17\\jsctype_s